package james.gan.registry.api;

import java.net.SocketAddress;
import java.util.List;
import java.util.Map;
import java.util.Observable;

public abstract class RegistryCenter extends Observable {

	public RegistryCenter() {
		super();
		RegistryCenterFacroty.registe(getName(), this);
	}

	public abstract void registe(SocketAddress socketAddress, Class<?> clz, Registry registryService);

	public abstract List<SocketAddress> findByClass(Class<?> clz);

	public abstract Registry getRegistry(SocketAddress socketAddress);

	public abstract String getName();

	public abstract Map<Class<?>, List<SocketAddress>> findAll();

}
